home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / QuickTime VR / MacOS / QuickDraw™ 3D 1.0.6F4 SDK / Samples / SampleCode / Unsupported Libraries / Trace_Lib.c < prev    next >
Encoding:
C/C++ Source or Header  |  1995-03-05  |  3.0 KB  |  123 lines  |  [TEXT/MPS ]

  1. /******************************************************************************
  2.  **                                                                             **
  3.  **     Module:        Trace_Lib.c                                                  **
  4.  **                                                                          **
  5.  **                                                                          **
  6.  **     Purpose:                                                              **
  7.  **                                                                          **
  8.  **                                                                          **
  9.  **                                                                          **
  10.  **     Copyright (C) 1992-1995 Apple Computer, Inc.  All rights reserved.     **
  11.  **                                                                          **
  12.  **                                                                          **
  13.  **     Change Log:                                                             **
  14.  **                                                                          **
  15.  **                                                                          **
  16.  *****************************************************************************/
  17. #include <stdio.h>
  18.  
  19. #include "QD3D.h"
  20. #include "Escher_Trace_sys.h"
  21.  
  22. #include "Trace_Lib.h"
  23.  
  24. FILE *EgTraceFile = NULL;
  25.  
  26. static void TraceHandler(
  27.     EtTraceMessage *message);
  28.  
  29.  
  30. /*===========================================================================*\
  31.  *
  32.  *    Routine:    TraceString()
  33.  *
  34.  *    Comments:    
  35.  *
  36. \*===========================================================================*/
  37.  
  38. char *TraceString(
  39.     EtTrace trace)
  40. {
  41.     switch(trace) {
  42.         case EcEntryTrace:             return("ENTRY");
  43.         case EcExitTrace:             return("EXIT");
  44.         case EcImportantTrace:         return("IMPORTANT");
  45.         case EcInterestingTrace:     return("INTERESTING");
  46.         case EcNotableTrace:         return("NOTICE");
  47.         case EcTrivialTrace:         return("TRIVIA");
  48.         default:                     return("????");
  49.     }
  50. }
  51.  
  52.  
  53. /*===========================================================================*\
  54.  *
  55.  *    Routine:    ComponentString()
  56.  *
  57.  *    Comments:    
  58.  *
  59. \*===========================================================================*/
  60.  
  61. char *ComponentString(
  62.     EtComponent component)
  63. {
  64.     switch(component) {
  65.         case EcSystemComponent:     return("System");
  66.         case EcGeometryComponent:     return("Geometry");
  67.         case EcUtilitiesComponent:     return("Utilities");
  68.         case EcIOComponent:         return("IO");
  69.         case EcRenderingComponent:     return("Rendering");
  70.         case EcGroupComponent:         return("Group");
  71.         case EcStyleComponent:         return("Style");
  72.         case EcViewComponent:         return("View");
  73.         case EcCameraComponent:     return("Camera");
  74.         case EcAttributeComponent:     return("Attribute");
  75.         default:                     return("????");
  76.     }
  77. }
  78.  
  79.  
  80. /*===========================================================================*\
  81.  *
  82.  *    Routine:    InstallDefaultTraceHandler()
  83.  *
  84.  *    Comments:    
  85.  *
  86. \*===========================================================================*/
  87.  
  88. void InstallDefaultTraceHandler(
  89.     void)
  90. {
  91.     EgTraceFile = fopen("trace.output", "w+");
  92.     
  93.     EiTrace_Register(TraceHandler);
  94. }
  95.  
  96.  
  97. /*===========================================================================*\
  98.  *
  99.  *    Routine:    TraceHandler()
  100.  *
  101.  *    Comments:    
  102.  *
  103. \*===========================================================================*/
  104.  
  105. static void TraceHandler(
  106.     EtTraceMessage *message)
  107. {
  108.     char    buf[512];
  109.     
  110.     sprintf(buf, "%s:%f:%s:%s:%s\n",
  111.             TraceString(message->trace),
  112.             (double) message->time.seconds,
  113.             ComponentString(message->component),
  114.             (message->functionName == NULL ? "" : message->functionName),
  115.             (message->string == NULL ? "" : message->string));
  116.             
  117.     fputs(buf, stdout);
  118.     if (EgTraceFile != NULL) {
  119.         fputs(buf, EgTraceFile);
  120.     }
  121. }
  122.  
  123.